// 最大连续利润

#include <bits/stdc++.h>
using namespace std;

int p[100000];

int main()
{
    int n;
    cin >> n;

    int max = INT_MIN;
    int sum = 0;
    for(int i=0; i<n; i++)
    {
        cin >> p[i]; // 连续读入每日利润
        
        sum += p[i]; // 将利润累加起来
        
        // 如果遇到p[i]亏本特别厉害，连以前攒的利润都亏空
        // 那么让sum重新归零，重新寻找最大连续利润
        if(sum <= 0)
        {
            sum = 0;
            // 万一所有的利润点都是负数，max将取最小负数
            max = max>p[i] ? max : p[i];
            continue;
        }
        
        max = max>sum ? max : sum;
    }
    cout << max << endl;
    
    return 0;
}
